30595095.8 action_type=ActionType.MOVE_ROBBER
  Candidate 4: expected_value=1200000025039928.8 action_type=ActionType.MOVE_ROBBER
  Candidate 5: expected_value=1200000008370984.5 action_type=ActionType.MOVE_ROBBER
  Candidate 6: expected_value=1200000030595484.5 action_type=ActionType.MOVE_ROBBER
  Candidate 7: expected_value=1200000008371914.5 action_type=ActionType.MOVE_ROBBER
  Candidate 8: expected_value=1200000005594145.2 action_type=ActionType.MOVE_ROBBER
  Candidate 9: expected_value=1200000005596762.2 action_type=ActionType.MOVE_ROBBER
  Candidate 10: expected_value=1200000030595484.5 action_type=ActionType.MOVE_ROBBER
  Candidate 11: expected_value=1200000030596762.2 action_type=ActionType.MOVE_ROBBER
  Candidate 12: expected_value=1200000030594132.8 action_type=ActionType.MOVE_ROBBER
  Candidate 13: expected_value=1200000050041216.5 action_type=ActionType.MOVE_ROBBER
  Candidate 14: expected_value=1200000008371914.5 action_type=ActionType.MOVE_ROBBER
  Candidate 15: expected_value=1200000050039550.0 action_type=ActionType.MOVE_ROBBER
  Candidate 16: expected_value=1200000030595095.8 action_type=ActionType.MOVE_ROBBER
  Candidate 17: expected_value=1200000030596762.2 action_type=ActionType.MOVE_ROBBER
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.MOVE_ROBBER: 'MOVE_ROBBER'>, value=((-1, 2, -1), <Color.RED: 'RED'>, None)) score=1200000050041216.5 node_expansions=241
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=1200000008371001.0 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=1200000008371001.0 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=1200000050041207.5 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=1200000050041207.5 node_expansions=31
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=1200000050038554.5 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=1200000050038554.5 node_expansions=7
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=1200000050041209.5 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=1200000050041209.5 node_expansions=78
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=1200000050038555.5 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=1200000050038555.5 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=1200000050042221.2 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=1200000050042221.2 node_expansions=339
FooPlayer.decide: Infra exists, filtering out maritime trades from global actions, now 16 actions
FooPlayer.decide: Fully evaluating 15 candidates with lookahead depth=3
  Candidate 0: expected_value=600000050042241.5 action_type=ActionType.BUILD_ROAD
  Candidate 1: expected_value=600000050043908.1 action_type=ActionType.BUILD_ROAD
  Candidate 2: expected_value=600000050043908.1 action_type=ActionType.BUILD_ROAD
  Candidate 3: expected_value=600000050043908.1 action_type=ActionType.BUILD_ROAD
  Candidate 4: expected_value=600000050043908.1 action_type=ActionType.BUILD_ROAD
  Candidate 5: expected_value=600000050043630.4 action_type=ActionType.BUILD_ROAD
  Candidate 6: expected_value=600000050042241.5 action_type=ActionType.BUILD_ROAD
  Candidate 7: expected_value=600000050042241.5 action_type=ActionType.BUILD_ROAD
  Candidate 8: expected_value=600000050042241.5 action_type=ActionType.BUILD_ROAD
  Candidate 9: expected_value=600000050042241.5 action_type=ActionType.BUILD_ROAD
  Candidate 10: expected_value=600000050042241.5 action_type=ActionType.BUILD_ROAD
  Candidate 11: expected_value=600000050043630.5 action_type=ActionType.BUILD_ROAD
  Candidate 12: expected_value=600000050043908.1 action_type=ActionType.BUILD_ROAD
  Candidate 13: expected_value=600000050043630.5 action_type=ActionType.BUILD_ROAD
  Candidate 14: expected_value=600000050043908.1 action_type=ActionType.BUILD_ROAD
FooPlayer.decide: Chosen road action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.BUILD_ROAD: 'BUILD_ROAD'>, value=(23, 52)) score=600000050043908.1 node_expansions=222
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=600000050041222.5 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=600000050041222.5 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=600000008373665.9 action_type=ActionType.DISCARD
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.DISCARD: 'DISCARD'>, value=None) score=600000008373665.9 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999922261666.9 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=599999922261666.9 node_expansions=3
FooPlayer.decide: prune_robber_actions returned overly aggressive pruning or no meaningful reduction, skipping
FooPlayer.decide: Fully evaluating 18 candidates with lookahead depth=3
  Candidate 0: expected_value=599999983374554.9 action_type=ActionType.MOVE_ROBBER
  Candidate 1: expected_value=600000025041223.5 action_type=ActionType.MOVE_ROBBER
  Candidate 2: expected_value=600000030596792.5 action_type=ActionType.MOVE_ROBBER
  Candidate 3: expected_value=600000050041222.5 action_type=ActionType.MOVE_ROBBER
  Candidate 4: expected_value=600000008373688.9 action_type=ActionType.MOVE_ROBBER
  Candidate 5: expected_value=600000000041247.0 action_type=ActionType.MOVE_ROBBER
  Candidate 6: expected_value=599999983374554.9 action_type=ActionType.MOVE_ROBBER
  Candidate 7: expected_value=600000008374565.9 action_type=ActionType.MOVE_ROBBER
  Candidate 8: expected_value=600000005596778.0 action_type=ActionType.MOVE_ROBBER
  Candidate 9: expected_value=600000005596788.0 action_type=ActionType.MOVE_ROBBER
  Candidate 10: expected_value=600000005596778.0 action_type=ActionType.MOVE_ROBBER
  Candidate 11: expected_value=599999922261665.9 action_type=ActionType.MOVE_ROBBER
  Candidate 12: expected_value=599999983374554.9 action_type=ActionType.MOVE_ROBBER
  Candidate 13: expected_value=600000050041222.5 action_type=ActionType.MOVE_ROBBER
  Candidate 14: expected_value=600000008374565.9 action_type=ActionType.MOVE_ROBBER
  Candidate 15: expected_value=600000050041222.5 action_type=ActionType.MOVE_ROBBER
  Candidate 16: expected_value=599999983374554.9 action_type=ActionType.MOVE_ROBBER
  Candidate 17: expected_value=600000000041233.5 action_type=ActionType.MOVE_ROBBER
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.MOVE_ROBBER: 'MOVE_ROBBER'>, value=((-1, 1, 0), <Color.RED: 'RED'>, None)) score=600000050041222.5 node_expansions=45
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=600000050041232.5 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=600000050041232.5 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=600000000043897.6 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=600000000043897.6 node_expansions=16
FooPlayer.decide: prune_robber_actions returned overly aggressive pruning or no meaningful reduction, skipping
FooPlayer.decide: Fully evaluating 18 candidates with lookahead depth=3
  Candidate 0: expected_value=599999983377220.0 action_type=ActionType.MOVE_ROBBER
  Candidate 1: expected_value=600000025043894.6 action_type=ActionType.MOVE_ROBBER
  Candidate 2: expected_value=600000030599453.1 action_type=ActionType.MOVE_ROBBER
  Candidate 3: expected_value=600000025043604.5 action_type=ActionType.MOVE_ROBBER
  Candidate 4: expected_value=600000025043884.6 action_type=ActionType.MOVE_ROBBER
  Candidate 5: expected_value=600000030599453.1 action_type=ActionType.MOVE_ROBBER
  Candidate 6: expected_value=600000025043617.0 action_type=ActionType.MOVE_ROBBER
  Candidate 7: expected_value=600000030598453.1 action_type=ActionType.MOVE_ROBBER
  Candidate 8: expected_value=600000030597786.5 action_type=ActionType.MOVE_ROBBER
  Candidate 9: expected_value=600000030597786.5 action_type=ActionType.MOVE_ROBBER
  Candidate 10: expected_value=600000030598453.1 action_type=ActionType.MOVE_ROBBER
  Candidate 11: expected_value=600000030597786.5 action_type=ActionType.MOVE_ROBBER
  Candidate 12: expected_value=600000025042218.0 action_type=ActionType.MOVE_ROBBER
  Candidate 13: expected_value=600000050043610.0 action_type=ActionType.MOVE_ROBBER
  Candidate 14: expected_value=600000030599175.5 action_type=ActionType.MOVE_ROBBER
  Candidate 15: expected_value=600000025043887.6 action_type=ActionType.MOVE_ROBBER
  Candidate 16: expected_value=600000030598453.1 action_type=ActionType.MOVE_ROBBER
  Candidate 17: expected_value=600000025042228.0 action_type=ActionType.MOVE_ROBBER
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.MOVE_ROBBER: 'MOVE_ROBBER'>, value=((-1, 2, -1), <Color.RED: 'RED'>, None)) score=600000050043610.0 node_expansions=261
FooPlayer.decide: Infra exists, filtering out maritime trades from global actions, now 17 actions
FooPlayer.decide: Fully evaluating 16 candidates with lookahead depth=3
  Candidate 0: expected_value=600000050043643.5 action_type=ActionType.BUILD_ROAD
  Candidate 1: expected_value=600000050043637.0 action_type=ActionType.BUILD_ROAD
  Candidate 2: expected_value=600000050043624.5 action_type=ActionType.BUILD_ROAD
  Candidate 3: expected_value=600000050043907.6 action_type=ActionType.BUILD_ROAD
  Candidate 4: expected_value=600000050043914.6 action_type=ActionType.BUILD_ROAD
  Candidate 5: expected_value=600000050043637.0 action_type=ActionType.BUILD_ROAD
  Candidate 6: expected_value=600000050043904.6 action_type=ActionType.BUILD_ROAD
  Candidate 7: expected_value=600000050043914.6 action_type=ActionType.BUILD_ROAD
  Candidate 8: expected_value=600000050042248.0 action_type=ActionType.BUILD_ROAD
  Candidate 9: expected_value=600000050042238.0 action_type=ActionType.BUILD_ROAD
  Candidate 10: expected_value=600000050042810.1 action_type=ActionType.BUILD_ROAD
  Candidate 11: expected_value=600000050042902.1 action_type=ActionType.BUILD_ROAD
  Candidate 12: expected_value=600000050043630.0 action_type=ActionType.BUILD_ROAD
  Candidate 13: expected_value=600000050042793.6 action_type=ActionType.BUILD_ROAD
  Candidate 14: expected_value=600000050042902.1 action_type=ActionType.BUILD_ROAD
  Candidate 15: expected_value=600000050043637.0 action_type=ActionType.BUILD_ROAD
FooPlayer.decide: Chosen road action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.BUILD_ROAD: 'BUILD_ROAD'>, value=(15, 17)) score=600000050043914.6 node_expansions=111
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=600000008376331.0 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=600000008376331.0 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=600000050046260.1 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=600000050046260.1 node_expansions=22
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=600000025043902.1 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=600000025043902.1 node_expansions=7
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999922266693.5 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=599999922266693.5 node_expansions=20
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999922264335.5 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=599999922264335.5 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999897265319.0 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=599999897265319.0 node_expansions=29
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999983374667.9 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=599999983374667.9 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999897265329.0 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=599999897265329.0 node_expansions=23
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999897262669.9 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=599999897262669.9 node_expansions=4
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999897265319.0 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=599999897265319.0 node_expansions=29
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999897262669.9 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=599999897262669.9 node_expansions=8
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999975042232.5 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=599999975042232.5 node_expansions=7
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999897262669.9 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=599999897262669.9 node_expansions=8
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999872259176.9 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=599999872259176.9 node_expansions=14
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999958371168.9 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=599999958371168.9 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999897259178.9 action_type=ActionType.ROLL
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.ROLL: 'ROLL'>, value=None) score=599999897259178.9 node_expansions=3
FooPlayer.decide: Fully evaluating 1 candidates with lookahead depth=3
  Candidate 0: expected_value=599999872259178.9 action_type=ActionType.END_TURN
FooPlayer.decide: Chosen non-trade action=Action(color=<Color.BLUE: 'BLUE'>, action_type=<ActionType.END_TURN: 'END_TURN'>, value=None) score=599999872259178.9 node_expansions=11
Playing 30 games...                                          ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
AlphaBetaPlayer:RED(depth=2,value_fn=base_fn,prunning=False) ━━━━━━━━━━━━━━━━━━━━━━━━━━╸               67%        
FooPlayer:BLUE                                               ━━━━━━━━━━━━━                             33%        
                    Last 10 Games                    
     ╷          ╷       ╷        ╷         ╷         
   # │ SEATING  │ TURNS │ RED VP │ BLUE VP │ WINNER  
╶────┼──────────┼───────┼────────┼─────────┼────────╴
  21 │ RED,BLUE │    87 │      7 │      10 │ BLUE    
  22 │ RED,BLUE │    52 │     10 │       3 │ RED     
  23 │ RED,BLUE │    96 │     10 │       7 │ RED     
  24 │ RED,BLUE │    70 │     10 │       4 │ RED     
  25 │ BLUE,RED │    70 │      3 │      10 │ BLUE    
  26 │ BLUE,RED │   105 │     10 │       7 │ RED     
  27 │ RED,BLUE │    46 │     10 │       5 │ RED     
  28 │ RED,BLUE │    83 │      6 │      10 │ BLUE    
  29 │ BLUE,RED │   170 │      9 │      10 │ BLUE    
  30 │ BLUE,RED │    73 │     10 │       3 │ RED     
     ╵          ╵       ╵        ╵         ╵         
                                                                Player Summary                                                                
                                                               ╷      ╷        ╷             ╷            ╷          ╷          ╷             
                                                               │ WINS │ AVG VP │ AVG SETTLES │ AVG CITIES │ AVG ROAD │ AVG ARMY │ AVG DEV VP  
╶──────────────────────────────────────────────────────────────┼──────┼────────┼─────────────┼────────────┼──────────┼──────────┼────────────╴
  AlphaBetaPlayer:RED(depth=2,value_fn=base_fn,prunning=False) │   20 │   8.70 │        3.10 │       1.97 │     0.80 │     0.00 │       0.07  
  FooPlayer:BLUE                                               │   10 │   7.07 │        3.13 │       0.60 │     0.20 │     0.67 │       1.00  
                                                               ╵      ╵        ╵             ╵            ╵          ╵          ╵             
              Game Summary              
            ╷           ╷               
  AVG TICKS │ AVG TURNS │ AVG DURATION  
╶───────────┼───────────┼──────────────╴
     241.07 │     84.10 │   4.403 secs  
            ╵           ╵